1606C - Banknotes - CodeForces Solution


greedy number theory *1400

Please click on ads to support us..

Python Code:

def solve():
    n,k=list(map(int,input().split()))
    a=list(map(int,input().split()))
    
    val=0
    for i in range(n):
        if i==n-1:
            val+=k*(10**a[i])
            break
        
        diff=10**(a[i+1]-a[i])
        if k<diff-1:
            val+=k*(10**a[i])
            break
        
        if i==0:
            k-=diff-2
            val+=diff-2
        else:
            k-=diff-1
            val+=(diff-1)*(10**a[i])
    
    print(val+1)

t = int(input())
for i in range(t):
    solve()

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define IOS std::ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL);
#define pb push_back 
#define pf push_front
#define mod 1000000007ll //998244353ll
#define lld long double
#define ll long long int 




void solve(){
    ll n,k;
    cin>>n>>k;
    k++;
    vector<int>v(n,0);
    for(int i=0;i<n;i++)cin>>v[i];
    sort(v.begin(),v.end());
    ll ans=0;
    for (int i=0;i<n && k>0 ;i++){
        ll d=pow(10,v[i]);
        if(i != n-1){
            ll diff=v[i+1]-v[i];
            ll x=pow(10,diff);
            x-=1;
            ll y=min(k,x);
            k-=y;
            ans+=d*y;
            
        }
        else{
            ans+=k*d;
            k=0;
        }
        
    }
    cout<<ans<<endl;
}

int main()
{
    IOS
    int t;
    cin>>t;
    while(t--)
        solve();
    return 0;
}


Comments

Submit
0 Comments
More Questions

1589C - Two Arrays
1510K - King's Task
126B - Password
462A - Appleman and Easy Task
839C - Journey
622A - Infinite Sequence
659C - Tanya and Toys
1266A - Competitive Programmer
234C - Weather
1332C - K-Complete Word
525C - Ilya and Sticks
1555C - Coin Rows
1324C - Frog Jumps
715A - Plus and Square Root
774D - Lie or Truth
1186D - Vus the Cossack and Numbers
505B - Mr Kitayuta's Colorful Graph
1324D - Pair of Topics
157B - Trace
34C - Page Numbers
279A - Point on Spiral
1294D - MEX maximizing
447A - DZY Loves Hash
23B - Party
63D - Dividing Island
1203E - Boxers
1547F - Array Stabilization (GCD version)
358A - Dima and Continuous Line
1385C - Make It Good
651A - Joysticks